package jdk.jdk8.lambda;

import org.junit.Test;

import java.util.Comparator;

/**
 * 语法格式一：无参数，无返回值
 * lambda表达式的本质是作为函数式接口的[实例对象]！！！
 *
 * @author guod
 * @version 1.0
 */
public class Lambda02 {
    @FunctionalInterface
    interface Movable02 {
        // 无参数，无返回
        void move();
        // void move01();
    }

    private static void fun(Movable02 movable02) {
        movable02.move();
    }

    @Test
    public void main() {
        Lambda02.fun(
                () -> {
                    // 死的
                    System.out.println("lambda表达式");
                }
        );
        // 不接收，也不输出
        Movable02 a = System.out::println;
        a.move();
    }

    // JDK中的例子
    @Test
    public void runnable() {
        Runnable runnable = () -> System.out.println("run...");
        runnable.run();

        Comparable<Integer> c = a -> a.compareTo(2);

        Comparator<Integer> cp = (a, b) -> a.compareTo(b);
    }
}
